from itertools import zip_longest

# 同时迭代多个序列，每次分别从一个序列中取一个元素
def demo_1():
    a = [1,5,4,2,10,7]
    b = [101,78,37,15,62,99]
    # 使用zip进行多个序列的迭代
    for x, y in zip(a, b):
        print(x, y)
    c = ['w', 'x', 'y', 'z']
    for l in zip(a, c):
        print(l)

def demo_2():
    a = [1, 2, 3]
    b = ['a', 'b']
    # fillvalue设置默认值，否则未匹配的数据为None
    for l in zip_longest(a, b, fillvalue=0):
        print(l)

def demo_3():
    headers = ['name', 'shares', 'price']
    values = ['ACME', 100, 490.1]
    s = dict(zip(headers, values))
    print(s)
    # zip函数会创建一个迭代器作为结果返回，如果需要将结对的值储存在列表中，要使用list函数
    print(list(zip(headers, values)))

if __name__ == '__main__':
    # demo_1()
    # demo_2()
    demo_3()